// 获取button元素
const btn = document.querySelector('button')

// 执行相应任务函数
function postMsg () {
  console.log('函数执行完成');
}

// 封装防抖函数
function debounce (fn, delay) {
  // 设置变量存放计时器
  let timer = null;
  return function () {
    // 设置有计时器则清除计时器，没设置就设置计时器
    timer && clearTimeout(timer)
    // 获取当前函数作用域this值
    let _this = this
    // 获取当前函数的参数
    let args = arguments
    // 设置计时器
    timer = setTimeout(function () {
      fn.call(_this, args)
    }, delay);
  }
}

// 监听点击事件
btn.addEventListener('click', debounce(postMsg, 1000))


